/**
 * 
 */
package com.toncen.samepms.util;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.toncen.samepms.system.dao.CodeDao;
import com.toncen.samepms.system.domain.Code;
import com.toncen.samepms.system.domain.CodeItem;
import com.sky.common.clone.CloneUtils;

/**
 * Office辅助工具
 * 
 * @author tch
 * 
 */
public class OfficeUtils {
	
	
	/**
	 * 根据编码名称和编码值获取正在使用的编码明细
	 * 一个值
	 * @param code
	 * @param value
	 * @return
	 * @throws Exception
	 */
	public static String getCodeItem(String code, String value) throws Exception {
		CodeDao codeDao = new CodeDao();
		Code c = codeDao.getByCode(code);
		String returnValue = "";
		if (c != null) {
			List<CodeItem> codeItemList = ((Code) CloneUtils.deepClone(c)).getCodeItemList();
			for (CodeItem codeItem : codeItemList) {
				if (codeItem.getValue().equals(value)) {
					returnValue = returnValue + codeItem.getName();
				}
			}
			return returnValue;
		}
		return "";
	}
	
	/**
	 * 根据编码名称和编码值获取正在使用的编码明细
	 * 多个值
	 * @param code
	 * @param value
	 * @return
	 * @throws Exception
	 */
	public static String getCodeItem(String code, String values,String tagSpit) throws Exception {
		CodeDao codeDao = new CodeDao();
		Code c = codeDao.getByCode(code);
		String returnValue = "";
		if (c != null) {
			List<CodeItem> codeItemList = ((Code) CloneUtils.deepClone(c)).getCodeItemList();
			for (CodeItem codeItem : codeItemList) {
				List<String > list = splitStr(values, tagSpit);
				for(String value:list)
				{
					if (codeItem.getValue().equals(value)) {
						returnValue = returnValue + codeItem.getName() + "，";
					}
				}
			}
			returnValue = returnValue.substring(0,returnValue.length()-1);
			return returnValue;
		}
		return "";
	}
	
	/**
	 * create:xl
	 * create date:2012-10-24上午10:15:46
	 * 方法描述：
	 * 查分字符串重新组合成字符串数组
	 */
	public static List<String> splitStr(String str,String tagSpit)
	{
		List<String>  list  = new ArrayList<String>();
		String valueStr = "";
		//拆分字段
		if(str!=null||str!="")
		{	
			java.util.StringTokenizer st = new java.util.StringTokenizer(
					str, tagSpit);
			while (st.hasMoreTokens())
			{
				valueStr =st.nextToken();
				list.add(valueStr);
			}
		}
		return list;

	}
	
	/**
	 * 转换时间格式
	 * 
	 * @param date
	 * @return
	 * @throws Exception
	 */
	public static String formatDate(Date date) throws Exception {
		return formatDate(date, "yyyy年MM月");
	}
	
	/**
	 * @param date
	 * @param format
	 * @return
	 * @throws Exception
	 */
	public static String formatDate(Date date, String format) throws Exception {
		if (date == null) {// 没有指定日期，则返回空串
			return "";
		}
		return new SimpleDateFormat(format).format(date);
	}
}
